package src.itheima03;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;

/*
    flush和close的区别
        1.字节流内部没有缓冲区,只要调用write方法,就是写出到目的地,所以不关流,也不会丢失数据

        2.字符流内部有缓冲区,调用write方法,先写到缓冲区,如果缓冲区数据存满了,会自动刷新到目的地,
            如果没有执行关闭流的动作,导致缓冲区可能还有数据,程序停止,数据丢失

        3.flush方法,把缓冲区中的数据,刷新到目的地,执行flush以后,
            可以继续调用write方法写出数据

        4.close方法内部,会先执行一次flush操作
        5.close方法之后,不能继续调用write方法写出数据

        记住一句话: io流对象,使用完毕,务必关闭流对象
 */
public class Demo06FlushVSClose {
    public static void main(String[] args) throws IOException {
        /*FileOutputStream fos = new FileOutputStream("day11\\fc.txt");
        fos.write("你好".getBytes());*/

        FileWriter fw = new FileWriter("day11\\fc.txt");
        fw.write("你好\r\n");

        //调用flush方法,把缓冲区中的数据,刷新到目的地
        //fw.flush();

        fw.write("大家好\r\n");
        //调用flush方法,把缓冲区中的数据,刷新到目的地
        //fw.flush();

        /*while(true) {

        }*/
        //关闭流
        fw.close();
        //fw.write("好好学习,天天向↑\r\n");

    }
}
